﻿<?php 
//Config : Les informations personnels de l'instance (log, pass, etc)
require("../../include/config.php");

//API Fonctions : les fonctions fournis de base par l'API
require("../../API/php/fonctions.php");

//Header établie la connection à la base $connection
require("../../API/php/header.php");

//Mode debug
$modeDebug = false;

//Public ou privé (clé obligatoire)
$modePublic = true;

//Mode de sortie text,json,xml,csv
//pour xml et csv $object_retour->data["resultat"] doit contenir qu'un est unique array
$modeSortie = "json";

//Liens de test
// API_RH/phpsql/mysql_getDataRapportRH2.php?milis=123456789&dateBegin=01022014&dateEnd=03032014

// IN obligatoire
$arrayInput = array(
    "dateBegin" => null,
    "dateEnd" => null
);

//Définition des entrants optionel
$arrayInputOpt = array(
    "filtreUsers" => ""
);

//Récupération des entrants
$arrayValeur = recupInput($arrayInput,$arrayInputOpt);

//Object retour minima
// $object_retour->strErreur string
// $object_retour->data  string
// $object_retour->statut  string

//------------------------------------------------------------------
if ($arrayValeur["filtreUsers"] != ""){
    $strFiltreUsersB = "AND b.user in (".$arrayValeur["filtreUsers"].")";
    $strFiltreUsersD = "AND d.user in (".$arrayValeur["filtreUsers"].")";
}else{
    $strFiltreUsersD = "";
    $strFiltreUsersB = "";
}

//pourcent de saisi d activitee
$strSql = "SELECT f.date, f.user responsable, IF(c.totalj IS NULL,0,c.totalj) total
    FROM (
        SELECT a.date, e.user
        FROM `".$prefixTable."affectation` a, (SELECT DISTINCT d.user
            FROM `".$prefixTable."tab_suivihebdo_enreg` d, `".$prefixTable."effectifs` g
            WHERE 1=1
            AND d.user = g.code_user
            ".$strFiltreUsersD."
            AND g.date_out > STR_TO_DATE('".$arrayValeur["dateBegin"]."','%d%m%Y')
            AND d.`date_saisi` between STR_TO_DATE('".$arrayValeur["dateBegin"]."','%d%m%Y') AND STR_TO_DATE('".$arrayValeur["dateEnd"]."','%d%m%Y')) e
        WHERE 1=1
        AND a.`open` != a.`close`
        AND a.`date` between STR_TO_DATE('".$arrayValeur["dateBegin"]."','%d%m%Y') AND STR_TO_DATE('".$arrayValeur["dateEnd"]."','%d%m%Y')) f
    LEFT JOIN (SELECT b.date_saisi, b.user, IF(SUM(b.charge)IS NULL,0,SUM(b.charge)) totalj 
        FROM `".$prefixTable."tab_suivihebdo_enreg` b 
        WHERE 1=1 
        ".$strFiltreUsersB."
        AND b.date_saisi between STR_TO_DATE('".$arrayValeur["dateBegin"]."','%d%m%Y') AND STR_TO_DATE('".$arrayValeur["dateEnd"]."','%d%m%Y') 
        GROUP BY b.date_saisi, b.user) c
    ON c.date_saisi = f.date AND c.user = f.user	
    WHERE 1=1
    AND IF(c.totalj IS NULL,0,c.totalj) < 10 
    ORDER BY f.user asc, f.date desc	
;";
// On envois la requète
$req = $connection->prepare($strSql);

if($req->execute()){
    // On indique que nous utiliserons les résultats en tant qu'objet
    $req->setFetchMode(PDO::FETCH_OBJ);

    // On transforme les résultats en tableaux d'objet
    $resultats = new stdClass();
    $resultats->data = $req->fetchAll(PDO::FETCH_OBJ);
    $resultats->nombre = count($resultats->data);

    $object_retour->data["resultat"] = $resultats;
}else{
    $error = 'Erreur SQL:'.print_r($req->errorInfo(), true)." (".$strSql.")";
    $object_retour->strErreur = $error;
}
$req->closeCursor();
//--------------------------------------------------------------------------

require("../../API/php/footer.php");
?>